package collection;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * @author Cheng Jun
 * Description: 请输入描述
 * @version 1.0
 * @date 2021/3/6 11:15
 */
public class MapStudy {

    // public static void main(String[] args) {
    //     Map<String, Integer> map = new HashMap<>();
    //     map.put("cj",25);
    //     map.put("xm",17);
    //     map.put("a",20);
    //     System.out.println(map);
    // }

    public static void main(String[] args) {
        Map<String, Integer> mapRepeat = new HashMap<>();

        mapRepeat.put("aa", 1);
        mapRepeat.put("bb", 45);
        mapRepeat.put("cc", 32);
        mapRepeat.put("dd", 226);
        mapRepeat.put("ee", 16);
        mapRepeat.put("ff", 320);
        mapRepeat.put("gg", 99);


        Map<String, Integer> mapRepeat1 = new HashMap<>();
        mapRepeat1.put("aa", 1);
        mapRepeat1.put("bb", 5);
//.sorted标签，对map根据value排序
//.map方法把map的key转成set
//.subList取前n位，下图（0，5位）
//.retainAll(拿key-set，去与map碰撞)，判断交集并覆盖之前的list，取出相交个数

//list的value就是相交的 key，如需value取出即可

        List<String> mobileList = mapRepeat.entrySet().stream()
                .sorted((Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) -> o2.getValue() - o1.getValue())
                .map(entry -> entry.getKey()).collect(Collectors.toList())
                .subList(0, 5);
        mobileList.retainAll(mapRepeat1.keySet());
    }

}
